import type {
  EntityApi,
  EntityReq,
  EntityModel,
  EntityList,
  EntityKey,
  EntityCreateReq,
  EntityUpdateReq,
} from "jmash-core";

// 任务触发器接口
export interface JobTriggerApi extends EntityApi {}

// 任务触发器查询
export interface JobTriggerReq extends EntityReq {
  //  任务名称
  jobName?: string;
}

// 任务触发器实体
export interface JobTriggerModel extends EntityModel {
  //  触发ID
  triggerId?: string;
  //  任务名称
  jobName?: string;
  //  是否当前日期开始
  startNow?: boolean;
  //  启动时间
  startDate?: string;
  //  cron表达式
  cron?: string;
  //  cron描述
  cronName?: string;
  //  是否自定义
  isCustom?: boolean;
}

//任务触发器列表
export interface JobTriggerList extends EntityList {
  // 内容
  results: Array<JobTriggerModel>;
}

// 任务触发器主键
export interface JobTriggerKey extends EntityKey {
  // 租户
  tenant?: string;
  // 触发ID
  triggerId?: string;
}

// 任务触发器新增实体
export interface JobTriggerCreateReq extends EntityCreateReq {
  // 触发ID
  triggerId?: string;
  // 任务名称
  jobName?: string;
  // 是否当前日期开始
  startNow?: boolean;
  // 启动时间
  startDate?: string;
  // cron表达式
  cron?: string;
  // cron描述
  cronName?: string;
  // 是否自定义
  isCustom?: boolean;
}

// 任务触发器修改实体
export interface JobTriggerUpdateReq extends EntityUpdateReq {
  // 触发ID
  triggerId?: string;
  // 任务名称
  jobName?: string;
  // 是否当前日期开始
  startNow?: boolean;
  // 启动时间
  startDate?: string;
  // cron表达式
  cron?: string;
  // cron描述
  cronName?: string;
  // 是否自定义
  isCustom?: boolean;
}

export type JobTriggerFormReq = JobTriggerCreateReq | JobTriggerUpdateReq;
